package com.ck.dao;

import com.ck.model.common.Scene;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 场景
 *
 * @author linqiang
 * @date 2018-06-20 18:25
 */
public interface SceneMapper {
    /**
     * 根据主键删除场景
     *
     * @param sceneId 场景主键
     * @return 影响行数
     */
    int deleteByPrimaryKey(Long sceneId);

    /**
     * 新增场景
     *
     * @param record 新增的场景
     * @return 影响行数
     */
    int insert(Scene record);

    /**
     * 新增场景（字段值不为空的）
     *
     * @param record 新增的场景
     * @return 影响行数
     */
    int insertSelective(Scene record);

    /**
     * 根据主键查询单个场景
     *
     * @param sceneId 场主键
     * @return 场景
     */
    Scene selectByPrimaryKey(Long sceneId);

    /**
     * 根据主键个更新场景（不为空的字段）
     *
     * @param record 更新的场景
     * @return 影响行数
     */
    int updateByPrimaryKeySelective(Scene record);

    /**
     * 根据主键更新场景
     *
     * @param record 更新的场景
     * @return 影响行数
     */
    int updateByPrimaryKey(Scene record);

    /**
     * 批量插入场景
     *
     * @param sceneList 数据集合
     * @return 影响行数
     */
    int batchInsert(@Param("sceneList") List<Scene> sceneList);

    /**
     * 根据节目版本号批量删除场景上
     *
     * @param programVersion 节目版本号
     * @return 影响行数
     */
    int batchDeleteByProgramVersion(@Param("programVersion") String programVersion);

    /**
     * 根据节目版本号查询场景集合
     *
     * @param programVersion 节目版本号
     * @return List<Scene>
     */
    List<Scene> listByProgramVersion(@Param("programVersion") String programVersion);

    /**
     * 根据公司编码查询场景版本号集合
     *
     * @param companyCode 商家编码
     * @return List<String>
     */
    List<String> listSceneVersionByCompanyCode(String companyCode);

    /**
     * 通过URL获取不能删除节目的条数（节目状态为1：待审批，2：待发布）
     * @param url 地址
     * @return Long
     */
    Long countNoDeleteProgram(String url);
}